"""列表控件示例模块

该模块演示了如何使用PySide6的QListWidget类创建列表控件，
并处理列表项点击事件。
"""

import sys
from PySide6 import QtCore, QtWidgets

class MyWidget(QtWidgets.QWidget):
    """列表控件窗口类
    
    创建一个包含列表控件的简单窗口，演示列表控件的基本用法和事件处理。
    """
    
    def __init__(self):
        """初始化窗口组件"""
        super().__init__()
        # 设置窗口标题
        self.setWindowTitle('列表')

        # 创建列表控件
        self.listWidget = QtWidgets.QListWidget()
        # 设置窗口标题
        self.listWidget.setWindowTitle('标题')
        # 添加列表项
        self.listWidget.addItem('列表1')

        # 连接列表项点击信号到处理槽函数
        self.listWidget.clicked.connect(self.listClick)

        # 创建垂直布局管理器
        self.layout = QtWidgets.QVBoxLayout(self)
        self.layout.addWidget(self.listWidget)
        self.setLayout(self.layout)

    @QtCore.Slot()
    def listClick(self, index):
        """列表项点击事件处理槽函数
        
        当用户点击列表项时，显示一个消息框显示选中项的文本内容。
        
        Args:
            index: 被点击的列表项索引
        """
        # 获取被点击的行号并显示消息框
        QtWidgets.QMessageBox.information(
            self,
            '列表',
            self.listWidget.item(
                index.row()
            ).text()
        )


if __name__ == "__main__":
    # 创建应用程序实例
    app = QtWidgets.QApplication([])

    # 创建并显示窗口
    widget = MyWidget()
    widget.resize(300, 400)
    widget.show()

    # 运行应用程序事件循环
    sys.exit(app.exec())